<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      // 自己先去实现，通过查看之前做的笔记思考
      // 如果还是不会写，那么可以搜索百度或者其他AI工具也可以，最终需要实现效果
      var arr1 = [
        {
          id: 1,
          name: "老王1",
          age: 12,
          sex: "男",
        },
        {
          id: 2,
          name: "老王2",
          age: 19,
          sex: "女",
        },
        {
          id: 3,
          name: "老王3",
          age: 29,
          sex: "女",
        },
        {
          id: 4,
          name: "老王4",
          age: 18,
          sex: "男",
        },
        {
          id: 5,
          name: "老王5",
          age: 8,
          sex: "男",
        },
        {
          id: 6,
          name: "老王6",
          age: 22,
          sex: "女",
        },
      ];

      var arr2 = [
        {
          id: 1,
          name: "小男孩",
          age: 12,
          sex: "男",
        },
        {
          id: 2,
          name: "小姐姐",
          age: 19,
          sex: "女",
        },
        {
          id: 3,
          name: "大姐姐",
          age: 29,
          sex: "女",
        },
        {
          id: 4,
          name: "小哥哥",
          age: 18,
          sex: "男",
        },
        {
          id: 5,
          name: "老男人",
          age: 38,
          sex: "男",
        },
        {
          id: 6,
          name: "小妹妹",
          age: 10,
          sex: "女",
        },
      ];

      //1 自己调用该函数

      function logEveryOne(arrs) {
        // 传参一个数组arr1进来
        // 循环打印数组的每一项
        // 然后每一项是一个对象，在打印对象中的每个属性和属性值
        // 提示：for循环 和 for in
        // todo：
        for (var i = 0; i < arrs.length; i++) {
          // console.log(arrs[i], i, arrs);

          for (var n in arrs[i]) {
            // console.log(n);
            console.log(n, arrs[i][n]);
          }
        }
      }

      logEveryOne(arr1);
      //2 自己调用该函数
      function fliterOldAgeWomen(arrs) {
        // 传参一个数组arr1进来
        // 将数组中未成年的女性，移除掉
        // 提示：for循环 和 判断
        // todo：
        // for (var i = 0; i < arrs.length; i++) {
        //   if ((arrs[i].age < 18&&arrs[i].sex === "女")) {
        //     arrs.splice(i, 1);
        // i--
        //   }
        //   for (var n in arrs[i]) {
        //     console.log(n);
        //     console.log(arrs[i][n]);
        //   }
        // }
      }
      fliterOldAgeWomen(arr2);
      // 3 自己调用该函数
      function updateArr(arrs) {
        //  传参一个数组arr1进来
        // 向数组中开头追加一个对象：{}
        // 再向数组中开头追加一个数组：[]
        // 再向数组中开头追加一个函数: 任意定义一个函数
        // 最后打印自己看看数组，变成什么样了
        // todo
        // var obj = new Object(obj);
        // obj.name = "对象";
        // console.log(arrs);
        // arr1.unshift(obj);
        // arr1.unshift(arr2);
        // arr1.unshift(fun);
        // var fun = new Function();
        //--------分割线-----------//
        // 向数组结尾追加一个null：null
        // 再向数组结尾追加一个undefined：undefined
        // 再向数组结尾追加一个字符串：任意字符串
        // 再向数组结尾追加一个数值：任意0-100数值
        // 再向数组结尾追加一个布尔值：true 或 false
        // 最后打印自己看看数组，变成什么样了
        // todo
        // arrs.push(null);
        // arrs.push(undefined);
        // arrs.push(33);
        // arrs.push(true);
      }
      updateArr(arr1);

      // 4 自己调用该函数
      function getToday() {
        // 返回一个当前的时间：时间格式为：2024年8月17日 12:00:00
        // 提示：Date对象，能够拿到当前年份、月份、日等等，然后拼接返回
        // todo
        var now = new Date();
        var year = now.getFullYear();
        var month = now.getMonth() + 1;
        var day = now.getDate();
        var hours = now.getHours();
        var minutes = now.getMinutes();
        var seconds = now.getUTCSeconds();
        console.log(
          year +
            "年" +
            month +
            "月" +
            day +
            "日" +
            hours +
            ":" +
            minutes +
            ":" +
            seconds
        );
      }

      getToday();
      // 5 自己调用该函数
      function getRandom() {
        // 获取20个，1-10之间的随机数，并放到数组中
        // 不使用for循环打印每一项值
        // 提示：Math的方法 和 数组的方法
        // todo
        for (var i = 0; i < 20; i++) {
          // console.log(Math.round(Math.random() * 9) + 1);
        }
      }
      console.log();
      getRandom();
      // 6 自己调用该函数
      function getFileExt(fileName) {
        // 传递一个文件名，获取后缀名：
        // 如 index.html，返回.html；index.js，返回.js
        // 提示：字符串的方法
        // todo
        var str = "dddd.index.html";
        // result = str.split(".");

        // console.log(result[result.length - 1]);
        var index = str.lastIndexOf(".");
        console.log(index, str.slice(index));
      }
      getFileExt();
      // 7 自己调用该函数
      function getJoinText(arrs) {
        // 传递一个数组对象arr2，返回拼接已成年的人员的name
        // 如：返回字符串: '小姐姐、大姐姐、小哥哥、老男人'
        // 提示：数组的方法 + 字符串的方法
        // todo
        var arr = [];
        arrs.forEach((i) => {
          console.log(i);
          arr.push(i.name);
        });
        console.log(arr.join("、"));
      }
      getJoinText(arr2);
    </script>
  </body>
</html>
